#Nighty build script
#create is an adapted version of create-upload in Skellington package for http://media.pyweek.org/static/skellington-11.zip
#Copyright (C) 2007  Han Dao
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>.

#You can contact the author at wikipediankiba@gmail.com
import os
import zipfile

class Create:
	def __init__(self,base):
		try:
			package = zipfile.ZipFile(base + '.zip', 'w', zipfile.ZIP_DEFLATED)
		except RuntimeError:
			package = zipfile.ZipFile(base + '.zip', 'w')
		# core files
		for name in 'README GPL run.py'.split():
			package.write(name, os.path.join(base, name))
			package.write('run.py', os.path.join(base, 'run.pyw',))
		self.base = base
		self.package = package

	# utility for adding subdirectories
	def addfiles(self,generator):
		for dirpath, dirnames, filenames in generator:
        		for name in 'CVS', '.svn':
        			if name in dirnames:
                			dirnames.remove(name)

        	for name in filenames:
			suffix = os.path.splitext(name)[1]
        		if suffix in ('.pyc', '.pyo','.py~','.xcf'): continue
        		if name[0] == '.': continue
        		filename = os.path.join(dirpath, name)
        		self.package.write(filename, os.path.join(self.base, filename))

